
//
//
//	NadineW32Clock
//
//
//

#pragma once
#ifndef NADINEW32CLOCK_H
#define NADINEW32CLOCK_H

namespace Nadine{
	class NDW32Clock :public NDClock
	{
	private:
		bool	m_bUsingQPF;
		__int64 m_llQPFTicksPerSec;

	protected:
	public:
		NDW32Clock();
		virtual ~NDW32Clock() {}

		virtual void release() { NDLOG(0,L"NDW32Clock::release()"); this->m_bReleased =true; }

		virtual void Reset(); // resets the timer
		virtual void Start(); // starts the timer
		virtual void Stop();  // stop (or pause) the timer
		virtual void Advance(); // advance the timer by 0.1 seconds
		virtual float GetAbsoluteTime(); // get the absolute system time
		virtual float GetTime(); // get the current time
		virtual float GetElapsedTime(); // get the time that elapsed between GetElapsedTime() calls
		virtual void AddFrame();

	};

}

#endif